package movilmax.sia_corp.action;

import java.io.File;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;



import utilidades.Cadena;


import movilmax.sia_corp.model.ListaSs;
import movilmax.sia_corp.model.Listax;
import movilmax.sia_corp.model.Presupuesto;
import movilmax.sia_corp.model.SolicitudUpg;
import movilmax.sia_corp.model.Usuario;
import apli.conectar.Conectar;
import apli.procesos.PWimax;
import basedatos.Fecha;
import basedatos.Resultado;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class RegistroSolicitudUpg extends ActionSupport {
	private static final long serialVersionUID = -4187192956355322987L;
    
	private SolicitudUpg solicitud;
	
	private List<Listax> lst_servicios;
	private List<Listax> lst_productos;
	private List<Listax> lst_sucursales;
	private List<ListaSs> tabla_det;
	private List<ListaSs> tabla_sa;
	private String id_obj;
	
	private Conectar BASE;
	private String bloquear;
	private String cod_adendun;
	private String cod_presupuesto;
	
	private File archivo;
	private String archivoContentType;
	private String archivoFileName;
	
	private LinkedList<Presupuesto> lst_presupuestos;
//------------------------------------------------------------------------------------------------------------------------------------------//
	
	private String contrato;
	private String cod_sucursal;
	private String servicioSol;
	private String velocidadSol;
	private String monto;
	private String obs;
	
	public void validate(){	
		  try{	
			   if (this.getSolicitud().getCodigo().length() == 0 ){
				     this.addActionError( "Codigo invalido" );
					 return; 
			   }
			   if ( solicitud.getContrato().length() == 0 ){	
					 this.addActionError( "Debe ingresar el numero de contrato" );
					 return;
			   }
			   if ( solicitud.getObs().length() == 0 ){	
				     solicitud.setObs("NINGUNA");
					 //this.addActionError( "Debe ingresar las observaciones" );
					 //cargar();
					 //return;
			   }
			   if (this.getContrato().length() == 0){
				   this.setContrato("NINGUNA");
			   }
			   /*
				if(this.archivo!=null){
					if ( this.getArchivoFileName().length() == 0 ){	
						this.addActionError( "Debe seleccionar el archivo" );
						cargar();
						return;
					}
					if(!this.getCod_adendun().equals("-1")){
						if(!this.getArchivoContentType().trim().equals("application/vnd.openxmlformats-officedocument.wordprocessingml.document")){
							 this.addActionError("El tipo de archivo :"+ this.getArchivoContentType() +" no es valido, solo se permiten archivos ( docx ) " );
							 cargar();
					    	 return;
				    	}
					}else{
						if(!this.getArchivoContentType().trim().equals("application/pdf")){
							 this.addActionError("El tipo de archivo :"+ this.getArchivoContentType() +" no es valido, solo se permiten archivos PDF " );
							 cargar();
					    	 return;
				    	}
					}
						
					
				}else{
					this.addActionError("Debe seleccionar el archivo" );
					cargar();
					return;
				}
				*/
				
		  }catch(Exception err){
			 
		  }	
	}			
				
	
	@SuppressWarnings("rawtypes")
	public String cargar() throws Exception {
    		Map session = ActionContext.getContext().getSession();
    	    Usuario USUARIO = (Usuario)session.get("ses_usuario");
    	    String SQL="";
    	    if (USUARIO==null){	
    	    	this.addActionError("La sesion del usuario ha caducado");
				return ERROR;
    	    }
    	    if(solicitud.getContrato().equals("")){
    	    	this.addActionError("Debe indicar el numero de contrato");
 				return ERROR;
    	    }  
    	    Conectar BASE= new Conectar();
    	    tabla_det= new ArrayList<ListaSs>();
    	    tabla_sa= new ArrayList<ListaSs>();
    	    if(BASE.getMsg().equals("SI")){	
	  			SQL="Select T.nombres+' '+T.apellidos as des,T.identificacion,C.tipo,C.status " +
	  				" From clientes T,contratos C Where C.contrato='"+solicitud.getContrato() + "' and C.cliente=T.codigo ";
	  			Resultado RCS=BASE.getBaseDatos().consultar(SQL);
	  			if(RCS.RP){
	  				 if(RCS.getCadena("status").equals("ANULADO") ){
	  					this.addActionError("No se puede procesar la solicitud el contrato = "+solicitud.getContrato()+", esta anulado");
	  	 				return ERROR;
	  				 }
	  				 solicitud.setDes_cliente(RCS.getCadena("des"));
	  				 solicitud.setDes_rif(RCS.getCadena("identificacion"));
	  				 solicitud.setDes_status("NO REGISTRADA");
	  				 solicitud.setStatus("1000");
	  				 solicitud.setDes_obs("NINGUNA");
	  				 solicitud.setFecha(new Fecha().getFecha());
	  				 solicitud.setHora(new Fecha().getHoras());
	  				 solicitud.setUsuario("NINGUNO");
	  				 solicitud.setCodigo("-1");
	  				 this.setCod_adendun("-1");
	  				 this.setBloquear("NO");
	  				 
	  				 SQL="Select Z.cod,Z.descripcion as des_suc,P.descripcion as des_servicio,C.monto "+
						"From corp_sucursales Z,detalle_servicios_corp C,productos P "+
						"Where C.contrato='"+solicitud.getContrato()+"' and C.sucursal=Z.cod and C.servicio=P.codigo "+ 
						"and P.recurrente='1' order by P.descripcion ";	
	  		  		 RCS=BASE.getBaseDatos().consultar(SQL);
	  			  	 if(RCS.RP){
	  			  		 do{
		  					  ListaSs LST=new ListaSs();
							  LST.setId(new Cadena().convertirStr(tabla_sa.size()+1));
							  LST.setDes_sucursal(RCS.getCadena("des_suc"));
							  LST.setDes_servicio(RCS.getCadena("des_servicio"));
			  				  LinkedList precio=new Cadena().tokens((new Cadena().convertirStr( RCS.getFloat("monto") )),".");
							  if( precio.get(1).toString().equals("0") )
								 LST.setPrecio(precio.get(0).toString());
							  else
								 LST.setPrecio(precio.get(0).toString()+"."+precio.get(1).toString()); 
							  tabla_sa.add(LST);
	  				   }while(RCS.sigItem()); 	 
	  			  	 }
	  				 SQL="Select S.codigo,S.obs,S.status,S.usuario,D.cod,D.sucursal,D.servicio,D.producto,D.monto,U.descripcion as des_usuario,CONVERT(varchar(30),S.fecha_act,103) as fecham,S.hora_act as hora,X.descripcion as des_status,W.descripcion as des_servicio,Y.descripcion as des_producto,Z.descripcion as des_sucursal  " +
	  				 " From corp_solicitud_upg S,corp_solicitud_upg_detalle D,contratos C,usuarios U,corp_status_sol X,corp_servicios W,corp_productos Y,corp_sucursales Z Where C.contrato='"+solicitud.getContrato() + "' and C.contrato=S.contrato and S.procesado='0' and S.status=X.cod and S.usuario_act=U.usuario and S.codigo=D.solicitud and D.servicio=W.cod and D.producto=Y.cod and D.sucursal=Z.cod ";
	  				 RCS=BASE.getBaseDatos().consultar(SQL);
	  				  
		  			 if(RCS.RP){
		  				 if(!RCS.getCadena("usuario").equals(USUARIO.getUsuario())  ){
		  					this.addActionError("La solicitud codigo ( "+RCS.getCadena("codigo")+" ) , no esta asignada al usuario "+USUARIO.getDescripcion());
		  	 				return ERROR;
		  				 }
		  				 solicitud.setCodigo(RCS.getCadena("codigo"));
		  				 solicitud.setDes_status(RCS.getCadena("des_status"));
		  				 solicitud.setStatus(RCS.getCadena("status")); 
		  				 solicitud.setDes_obs(RCS.getCadena("obs"));
		  				 solicitud.setFecha(RCS.getCadena("fecham"));
		  				 solicitud.setHora(RCS.getCadena("hora"));
		  				 solicitud.setUsuario(RCS.getCadena("des_usuario"));
		  				 if(solicitud.getStatus().equals("1") || solicitud.getStatus().equals("2") )
		  					this.setBloquear("NO");
		  				 else
		  					this.setBloquear("SI"); 
		  				 do{
		  					  ListaSs LST=new ListaSs();
							  LST.setId(new Cadena().convertirStr(tabla_det.size()+1));
							  LST.setCod(RCS.getCadena("cod")); 
							  LST.setSucursal(RCS.getCadena("sucursal"));
							  LST.setServicio(RCS.getCadena("servicio"));
							  LST.setProducto(RCS.getCadena("producto"));
							  LST.setDes_sucursal(RCS.getCadena("des_sucursal"));
							  LST.setDes_servicio(RCS.getCadena("des_servicio"));
							  LST.setDes_producto(RCS.getCadena("des_producto"));
			  				  LinkedList precio=new Cadena().tokens((new Cadena().convertirStr( RCS.getFloat("monto") )),".");
							  if( precio.get(1).toString().equals("0") )
								 LST.setPrecio(precio.get(0).toString());
							  else
								 LST.setPrecio(precio.get(0).toString()+"."+precio.get(1).toString()); 
							  tabla_det.add(LST);
		  				 }while(RCS.sigItem()); 
		  				 
		  				 SQL="Select codigo From corp_adendus Where contrato='"+solicitud.getContrato() + "' and status='ENVIADA' ";
		  				 RCS=BASE.getBaseDatos().consultar(SQL);
			  			 if(RCS.RP){
			  				this.setCod_adendun(RCS.getCadena("codigo")); 
			  			 }
		  			 }else{

		  				 SQL="Select Z.cod,Z.descripcion as des_suc " +
		  				 " From corp_sucursales Z,detalle_servicios_corp C,productos P Where C.contrato='"+ solicitud.getContrato() + "' and C.sucursal=Z.cod and C.servicio=P.codigo and P.recurrente='1'  ";
		  				 RCS=BASE.getBaseDatos().consultar(SQL);
			  			 if(RCS.RP){
					  		 do{
					  			 ListaSs LST=new ListaSs();
					  			 LST.setId(new Cadena().convertirStr( tabla_det.size()+1 ));
					  			 LST.setCod("-1");
					  			 LST.setSucursal(RCS.getCadena("cod"));
					  			 LST.setServicio("-1");
					  			 LST.setProducto("-1");
					  			 LST.setDes_sucursal(RCS.getCadena("des_suc"));
					  			 LST.setDes_servicio("Seleccione");
					  			 LST.setDes_producto("Seleccione");
					  			 LST.setPrecio("0");
					  			 tabla_det.add(LST);
					  		  }while(RCS.sigItem());
			  			 }else{
			  				this.addActionError("El cliente no posee servicios correctamente asociados al contrato, comuniquese con el departamento de administracion"); 
			  				return ERROR;  
			  			 }
		  			 }
		  			BASE.getBaseDatos().cerrarConexion();
	  				 return SUCCESS;  	
	  			}else
	  				this.addActionError("El contrato ="+ solicitud.getContrato() +", es invalido"); 
	  			BASE.getBaseDatos().cerrarConexion();
            }else
            	this.addActionError("No hay conexion al servidor");
            
    	   return ERROR;  	
     }
	
    @SuppressWarnings("rawtypes")
	public String guardar_solicitud() throws Exception {
		Map session = ActionContext.getContext().getSession();
	    Usuario USUARIO = (Usuario)session.get("ses_usuario");
	    if (USUARIO!=null){		
	    	BASE= new Conectar();
	    	if(BASE.getMsg().equals("SI")){	
	    		try{
	    			/*String SQL="Select P.descripcion,C.monto "+
	    				"From detalle_servicios_corp C,productos P "+
	    				"Where C.contrato='"+ solicitud.getContrato() +"' and C.servicio=P.codigo";
	    			*/
	    			/*if ( this.getArchivoFileName().length() == 0 ){	
						this.addActionError( "Debe seleccionar el archivo con la propuesta que desea enviar" );
					}
					if(!this.getArchivoContentType().trim().equals("application/pdf")){
						 this.addActionError("El tipo de archivo :"+ this.getArchivoContentType() +" no es valido, solo se permiten archivo PDF" );
			    	}*/
	    			Fecha F=new Fecha();
	    			String FECHA=F.getFecha();
	    			String HORA=F.getHoras();
	    			String SQL="";
	    			String CODIGO="",CABECERA="";
	    			try {
	    				/*StringBuilder sb = new StringBuilder();
	    				sb.append("/home/corporativo/clientes/"+ solicitud.getContrato() +"/" );
	    				sb.append("solicitud1.pdf" );
	    				File theFile = new File(sb.toString());
	    				FileUtils.copyFile( this.getArchivo() , theFile);
	    				adjuntos="/home/corporativo/clientes/"+ solicitud.getContrato() +"/solicitud1.pdf" ;
	    				*/
	    				Cadena C=new Cadena();
	    				LinkedList lst_suc1=C.tokens(this.getSolicitud().getSucursal(), ",");
  		    	    	LinkedList lst_serv=C.tokens(this.getSolicitud().getServicio(), ",");
  		    	    	LinkedList lst_prod=C.tokens(this.getSolicitud().getProducto(), ",");
  		    	    	LinkedList lst_mont=C.tokens(this.getSolicitud().getPrecio(), ",");
  		    	    	LinkedList lst_cods=C.tokens(this.getSolicitud().getCod_item(), ",");
  		    	    	
	    				if (this.getSolicitud().getCodigo().equals("-1") ){
	    					CODIGO=BASE.getBaseDatos().generarCodigo("corp_solicitud_upg","codigo");
	    					SQL="INSERT INTO corp_solicitud_upg (codigo,contrato,obs,usuario,fecha,hora,status,fecha_act,hora_act,usuario_act,vendedor__) VALUES('"+CODIGO +"','"+ this.getSolicitud().getContrato() +"','"+ this.getSolicitud().getObs() + "','"+ USUARIO.getUsuario()+"','"+ FECHA +"','"+HORA+"','1','"+ FECHA +"','"+HORA+"','"+USUARIO.getUsuario()+"','"+ USUARIO.getCod_vendedor() +"' )";
	    					CABECERA="NUEVA SOLICITUD DE ACTUALIZACION DE SERVICIO GENERADA CON CODIGO="+CODIGO;
	    				}else{
	    					CODIGO=this.getSolicitud().getCodigo();
	    					SQL="UPDATE corp_solicitud_upg set obs='"+ this.getSolicitud().getObs() +"',status='2',usuario_act='"+ USUARIO.getUsuario() +"',fecha_act='"+FECHA+"',hora_act='"+HORA+"' where codigo='"+ CODIGO + "' ";
	    					CABECERA="SOLICITUD DE ACTUALIZACION DE SERVICIO CON CODIGO="+CODIGO+" ACTUALIZADA POR VENDEDOR";
	    				}
	    				//BASE.getBaseDatos().guardarArchivo(adjuntos, SQL);
	    				BASE.getBaseDatos().ejecutar(SQL);
	    				for(int i=0; i<lst_suc1.size();i++){
	    					String cod=lst_cods.get(i).toString();
  		    	    		String suc=lst_suc1.get(i).toString();
  		    	    		String ser=lst_serv.get(i).toString();
  		    	    		String pro=lst_prod.get(i).toString();
  		    	    		String mon=lst_mont.get(i).toString();
  		    	    		if (this.getSolicitud().getCodigo().equals("-1")){
	  		    	    		if(!suc.equals("-1") && !ser.equals("-1") && !pro.equals("-1") && !mon.equals("") && !mon.equals("0") ){
		  		    	    		SQL="INSERT INTO corp_solicitud_upg_detalle " +
			  	  		    			"(solicitud,sucursal,servicio,producto,monto) "+
			  	  		    			"VALUES('"+CODIGO+"','"+suc+"','"+ser+"','"+pro+"','"+mon+"' ) ";
	  		    	    		}
  		    	    	   }else{
  		    	    		   if(!suc.equals("-1") && !ser.equals("-1") && !pro.equals("-1") && !mon.equals("") && !mon.equals("0") ){
	  		    	    		   SQL="UPDATE corp_solicitud_upg_detalle SET " +
		  	  		    			  " servicio='"+ser+"',producto='"+pro+"',monto='"+mon+"' Where cod='"+cod+"' ";  
  		    	    		   }   
  		    	    	   }
  		    	    	  BASE.getBaseDatos().ejecutar(SQL);
  		    	    	}
	    			}catch (Exception e) {
	    				this.addActionError("Error al intentar cargar el archivo :"+ e.toString()  );
	  		    	    return ERROR;
	    			}
	    			String DESTINO=USUARIO.getEmail()+","+USUARIO.getEmail_sup()+",planeamiento@movilmax.com"; 
  		    	    SQL="INSERT INTO corp_seguimiento_actividades_cli (contrato,proceso,obs,usuario,fecha,hora) "+
  		    			"VALUES('"+this.getSolicitud().getContrato() +"','1','"+ this.getSolicitud().getObs() +"','"+ USUARIO.getUsuario() +"','"+ FECHA +"','"+HORA+"' )";
  		    	    BASE.getBaseDatos().ejecutar(SQL); 
  		    	    String MSG_EM="";
  		    	    MSG_EM =MSG_EM+ "<br/>\n";
 				    MSG_EM = MSG_EM + "Cliente: " + this.getSolicitud().getContrato() +" - "+this.getSolicitud().getDes_cliente() + " <br/>\n";
	  				MSG_EM = MSG_EM + "Fecha status: "+new Fecha().getFecha()+" "+ new Fecha().getHoras() +" <br/>\n";
	  				MSG_EM = MSG_EM + "Usuario status: " + USUARIO.getDescripcion() + " <br/>\n";
	  				MSG_EM = MSG_EM + "Observaciones: " + this.getSolicitud().getObs() + " <br/>\n";
					SQL="INSERT INTO apli_emails (para,cabecera,mensaje) VALUES('" + DESTINO + "','"+CABECERA+"','" + MSG_EM + "' ) ";
					BASE.getBaseDatos().ejecutar(SQL);
  		    	    this.addActionMessage("Solicitud enviada correctamente");
  		    	    this.addActionMessage("Copia enviada a :"+DESTINO+" ");
  		    	    this.addActionMessage("Actividad registrada con fecha : ("+ new Fecha().getFecha() +" "+ new Fecha().getHoras()  +" )");
  		    	    BASE.getBaseDatos().cerrarConexion();
  		    	  return SUCCESS; 	
	    	  }catch(Exception err  ){
				    this.addActionError("Error: "+err.toString() );
			  }  
	    	  BASE.getBaseDatos().cerrarConexion();
		   }
		   else
			 this.addActionError("No hay conexion al servidor");  
	   } 
	  else
		  this.addActionError("La sesion del usuario ha caducado");   	
	
	   return ERROR;
	   
   } 
	
    @SuppressWarnings("rawtypes")
	public String enviar_adendun() throws Exception {
		Map session = ActionContext.getContext().getSession();
	    Usuario USUARIO = (Usuario)session.get("ses_usuario");
	    if (USUARIO!=null){		
	    	BASE= new Conectar();
	    	if(BASE.getMsg().equals("SI")){	
	    		 try{
	    			/*if ( this.getArchivoFileName().length() == 0 ){	
						this.addActionError( "Debe seleccionar el archivo con el adendun firmado" );
					}
					if(!this.getArchivoContentType().trim().equals("application/vnd.openxmlformats-officedocument.wordprocessingml.document")){
						 this.addActionError("El tipo de archivo :"+ this.getArchivoContentType() +" no es valido, solo se permiten archivo ( docx )" );
			    	}
					*/	
	    			Fecha F=new Fecha();
	    			String FECHA=F.getFecha();
	    			String HORA=F.getHoras();
	    			String SQL="";
	    			String CABECERA="";
	    			try {
	    				/*StringBuilder sb = new StringBuilder();
	    				sb.append("/home/corporativo/clientes/"+ solicitud.getContrato() +"/" );
	    				sb.append("adendum.docx" );
	    				File theFile = new File(sb.toString());
	    				FileUtils.copyFile( this.getArchivo() , theFile);
	    				adjuntos="/home/corporativo/clientes/"+ solicitud.getContrato() +"/adendum.docx";
	    				*/
	    				if (!this.getCod_adendun().equals("-1") ){
	    					//SQL="UPDATE corp_adendus set adendun=?,obs_act='"+ this.getSolicitud().getObs() +"',status='CONFIRMADO',usuario_act='"+ USUARIO.getUsuario() +"',fecha_act='"+FECHA+"',hora_act='"+HORA+"' where codigo='"+ this.getCod_adendun() + "' ";
	    					//BASE.getBaseDatos().guardarArchivo(adjuntos, SQL);
	    					SQL="UPDATE corp_adendus set obs_act='"+ this.getSolicitud().getObs() +"',status='CONFIRMADO',usuario_act='"+ USUARIO.getUsuario() +"',fecha_act='"+FECHA+"',hora_act='"+HORA+"' where codigo='"+ this.getCod_adendun() + "' ";
	    					BASE.getBaseDatos().ejecutar(SQL);
	    					SQL="UPDATE corp_solicitud_upg set obs='"+ this.getSolicitud().getObs() +"',status='17',usuario_act='"+ USUARIO.getUsuario() +"',fecha_act='"+FECHA+"',hora_act='"+HORA+"' where codigo='"+ this.getSolicitud().getCodigo() + "' ";
	    					BASE.getBaseDatos().ejecutar(SQL);
	    					CABECERA="ADENDUM FIRMADO POR EL CLIENTE";
	    				}
	    			}catch (Exception e){
	    				this.addActionError("Error al intentar cargar el archivo :"+ e.toString()  );
	  		    	    return ERROR;
	    			}
	    			
	    			String DESTINO=USUARIO.getEmail()+","+USUARIO.getEmail_sup()+",nadeska@movilmax.com"; 
  		    	    SQL="INSERT INTO corp_seguimiento_actividades_cli (contrato,proceso,obs,usuario,fecha,hora) "+
  		    			"VALUES('"+this.getSolicitud().getContrato() +"','9','"+ this.getSolicitud().getObs() +"','"+ USUARIO.getUsuario() +"','"+ FECHA +"','"+HORA+"' )";
  		    	    BASE.getBaseDatos().ejecutar(SQL); 
  		    	    String MSG_EM="";
  		    	    MSG_EM =MSG_EM+ "<br/>\n";
 				    MSG_EM = MSG_EM + "Cliente: " + this.getSolicitud().getContrato() +" - "+this.getSolicitud().getDes_cliente() + " <br/>\n";
	  				MSG_EM = MSG_EM + "Fecha status: "+new Fecha().getFecha()+" "+ new Fecha().getHoras() +" <br/>\n";
	  				MSG_EM = MSG_EM + "Usuario status: " + USUARIO.getDescripcion() + " <br/>\n";
	  				MSG_EM = MSG_EM + "Observaciones: " + this.getSolicitud().getObs() + " <br/>\n";
					SQL="INSERT INTO apli_emails (para,cabecera,mensaje) VALUES('" + DESTINO + "','"+CABECERA+" CLIENTE="+this.getSolicitud().getContrato() +" - "+this.getSolicitud().getDes_cliente()+"','" + MSG_EM + "' ) ";
					BASE.getBaseDatos().ejecutar(SQL);
  		    	    this.addActionMessage("Adendum enviado correctamente");
  		    	    this.addActionMessage("Email enviado a :"+DESTINO+" ");
  		    	    this.addActionMessage("Actividad registrada con fecha : ("+ new Fecha().getFecha() +" "+ new Fecha().getHoras()  +" )");
  		    	    BASE.getBaseDatos().cerrarConexion();
  		    	  return SUCCESS; 	
	    	  }catch(Exception err ){
				    this.addActionError("Error: "+err.toString() );
			  } 
	    	  BASE.getBaseDatos().cerrarConexion(); 
		   }
		   else
			 this.addActionError("No hay conexion al servidor");  
	   } 
	  else
		  this.addActionError("La sesion del usuario ha caducado");   	
	
	   return ERROR;
	   
   } 
 
	private String listar_servicios() {
		lst_servicios= new ArrayList<Listax>();
			  try{
		       String SQL="Select X.cod,UPPER(X.descripcion) as descripcion "+
	    	      "From corp_servicios X  "+
	    	      "where X.mostrar='1' and cli='1' Order by X.descripcion  "; 	 	

				Resultado  RCS=BASE.getBaseDatos().consultar(SQL);
				  if(RCS.RP){
					  do{ 
						  
						  Listax LST=new Listax();
						  LST.setCod(RCS.getCadena("cod"));
						  LST.setDescripcion(RCS.getCadena("descripcion"));
						  lst_servicios.add(LST);
					  }while(RCS.sigItem()); 
				  }
			   }catch(Exception err  ){
					//hubo un error .....
			}  
		  return SUCCESS;
	} 
	
	@SuppressWarnings("rawtypes")
	private String listar_productos(){
		lst_productos= new ArrayList<Listax>();
			  try{
				  String cod_serv="0";
				  Cadena C=new Cadena();
				  LinkedList vrs=C.tokens(this.solicitud.getServicio(), ",");
				  for(int i=0; i<vrs.size();i++){
					  LinkedList ids= C.tokens(this.getId_obj() ,"_");
					  String id_sel=ids.get(1).toString().trim();
					  if(id_sel.equals( C.convertirStr(i+1) ) ) {
						  cod_serv=vrs.get(i).toString();
					  }
				  }
		    	  /*String SQL="Select X.cod,X.descripcion "+
	    	      "From corp_productos X,corp_servicios_prod Z "+
	    	      "where Z.servicio='"+ cod_serv +"' and Z.mostrar='1' and X.cod=Z.producto and X.mostrar='1' Order by X.cod ASC ";
		    	  */
				  String SQL="Select X.cod,X.descripcion,X.megas "+
	    	      "From corp_productos X,corp_servicios_prod Z  "+
	    	      "where Z.servicio='"+ cod_serv +"' and Z.mostrar='1' and X.cod=Z.producto and X.mostrar='1' and X.megas>0 Order by X.megas ASC "; 	
				  Resultado RCS=BASE.getBaseDatos().consultar(SQL);
				  if(RCS.RP){
					  do{ 
						  Listax LST=new Listax();
						  LST.setCod(RCS.getCadena("cod"));
						  //LST.setDescripcion(RCS.getCadena("descripcion"));
						  LST.setDescripcion(RCS.getCadena("megas")+" Mbps");
						  lst_productos.add(LST);
					  }while(RCS.sigItem()); 
				  }
			   }catch(Exception err  ){
					//hubo un error ...
			}  
		  return SUCCESS;
	} 
	
	private String listar_sucursales(){
		lst_sucursales= new ArrayList<Listax>();
			  try{	
		    	String SQL="Select X.cod,UPPER(X.descripcion) as descripcion "+
	    	      "From corp_sucursales X,detalle_servicios_corp C  "+
	    	      "where C.contrato='"+this.getSolicitud().getContrato()+"' and C.sucursal=X.cod Order by X.cod ASC"; 	
				Resultado RCS=BASE.getBaseDatos().consultar(SQL);
				  if(RCS.RP){
					  do{ 
						  Listax LST=new Listax();
						  LST.setCod(RCS.getCadena("cod"));
						  LST.setDescripcion(RCS.getCadena("descripcion"));
						  lst_sucursales.add(LST);
					  }while(RCS.sigItem()); 
				  }
			   }catch(Exception err ){
					//hubo un error ...
			   }  
		  return SUCCESS;
	} 
	
	@SuppressWarnings("rawtypes")
	public String listar(){
		lst_presupuestos=new LinkedList<Presupuesto>();
		  Map session = ActionContext.getContext().getSession();
		    Usuario USUARIO = (Usuario)session.get("ses_usuario");
		    int i=0;
		    if (USUARIO!=null){	
		    	BASE= new Conectar();
		    	if(BASE.getMsg().equals("SI")){	    
		    		String SQL="select S.codigo,S.solicitud,Y.contrato,CONVERT(varchar(30),S.fecha_act,103) as fecha,s.hora_act as hora,T.identificacion+' - '+T.nombres+' '+T.apellidos as razon,"+
		    	    	    "V.descripcion as des_vendedor,S.obs_act as obsx "+
		    	    	    "from clientes T,corp_presupuesto_upg S,corp_solicitud_upg Y,Vendedores V,contratos C "+
		    	    	    "where S.status in('REGISTRADO','ACTUALIZADO' ) and S.solicitud=Y.codigo and Y.contrato=C.contrato and C.cliente=T.codigo and Y.usuario=V.usuario "+
		    	    	    "Order by S.fecha_act ASC,S.hora_act ASC ";
		    		Resultado RCS=BASE.getBaseDatos().consultar(SQL);
		    		
		    		PWimax pw=new PWimax(BASE.getBaseDatos()); 	
		    		Cadena C=new Cadena();
		    		if(RCS.RP){
		    		   do{
		    			   Presupuesto ITM=new Presupuesto();
		    			   ITM.setId(C.convertirStr(i));
		    			   String cod_presupuesto=RCS.getCadena("codigo");
		    			   String cod_sol=RCS.getCadena("solicitud");
		    			   
		    			   ITM.setCodigo(cod_presupuesto);
		    			   ITM.setFecha(RCS.getCadena("fecha"));
		    			   ITM.setHora(RCS.getCadena("hora"));
		    			   ITM.setProspecto(RCS.getCadena("razon"));
		    			   ITM.setSucursal(RCS.getCadena("contrato"));// se usa para el nro de contrato
		    			   ITM.setVendedor(RCS.getCadena("des_vendedor"));
		    			   ITM.setObs(RCS.getCadena("obsx"));
		    			   ITM.setBeneficio(RCS.getCadena("solicitud"));
		    			   
		    			   Resultado RCS2=pw.calcularPresupuestoUpg(cod_presupuesto,cod_sol, 8);
		    			   ITM.setCosto( C.formatearNumero(( RCS2.getDoble("costo_eqp")+RCS2.getDoble("costo_mat"))));
		    			   ITM.setComision(C.formatearNumero(RCS2.getDoble("comision")));
		    			   ITM.setEquipos(C.formatearNumero(RCS2.getDoble("costo_eqp")));
		    			   ITM.setMateriales(C.formatearNumero(RCS2.getDoble("costo_mat")));
		    			   ITM.setInstalacion(C.formatearNumero(RCS2.getDoble("instalacion")));
		    			   ITM.setRecurrente(C.formatearNumero(RCS2.getDoble("recurrente")));
		    			   
		    			   lst_presupuestos.add(ITM);
		    			   i++;
		    			   RCS2.liberar();
		    		   }while(RCS.sigItem());
		    		}
		    		BASE.getBaseDatos().cerrarConexion();
		    	}
		    }
		  return SUCCESS;
	}
	
	@SuppressWarnings("rawtypes")
	public String actualizar() throws Exception {
		  Map session = ActionContext.getContext().getSession();
		    Usuario USUARIO = (Usuario)session.get("ses_usuario");
		    String SQL="";
		    if (USUARIO!=null){	
		    	BASE= new Conectar();
		    	if(BASE.getMsg().equals("SI")){	
		    		Fecha F=new Fecha();
	    			String FECHA=F.getFecha();
	    			String HORA=F.getHoras();
	    			String razon="",stx="";
	    			String MPARA ="",MSG_EM="";
	    			SQL = "INSERT INTO corp_seguimiento_actividades_cli (contrato,proceso,obs,usuario,fecha,hora) " +
	    	              "VALUES('"+ solicitud.getContrato() +"','7','APROBADO X PRESIDENCIA','"+ USUARIO.getUsuario() +"','"+ FECHA +"','"+HORA+ "' )";
	                BASE.getBaseDatos().ejecutar(SQL);
	                SQL= "UPDATE corp_presupuesto_upg SET status='APROBADO',usuario_act='"+ USUARIO.getUsuario() +"',fecha_act='"+ FECHA +"',hora_act='"+HORA+"' where codigo='"+ this.getCod_presupuesto()+"' ";
	                BASE.getBaseDatos().ejecutar(SQL);
	                SQL= "UPDATE corp_solicitud_upg SET status='8',usuario_act='"+ USUARIO.getUsuario() +"',fecha_act='"+ FECHA +"',hora_act='"+HORA+"' where codigo='"+ this.getCod_presupuesto()+"' ";
	                BASE.getBaseDatos().ejecutar(SQL);
	                
		    	       /***************************ENVIO DE EMAIL A VENDEDOR*************************************/
			    		MPARA="dick@movilmax.com,yenny@movilmax.com,nadeska@movilmax.com";  
		    			MSG_EM = "HA SIDO APROBADO EL PRESUPUESTO UPGRATE CON CODIGO: "+ this.getCod_presupuesto() +" <br/>\n";
		    			MSG_EM = MSG_EM + "Razon social: " + razon + " <br/>\n";
		    			MSG_EM = MSG_EM + "Solicitud UpGrate : " + this.getSolicitud().getCodigo() + " <br/>\n";
		    			MSG_EM = MSG_EM + "Usuario status: "+USUARIO.getDescripcion() +" <br/> \n";
		    			MSG_EM = MSG_EM + "Fecha status: "+FECHA+" "+HORA+" <br/> \n";
		    			SQL="INSERT INTO apli_emails (para,cabecera,mensaje) VALUES('" + MPARA + "','PRESUPUESTO UPGRATE "+stx+" PARA="+razon+"','" + MSG_EM + "' ) ";
		    			BASE.getBaseDatos().ejecutar(SQL);	
	    		       /*******************************************************************************************************************************************************/
		    	     this.addActionMessage("APROBADO");
		    	     BASE.getBaseDatos().cerrarConexion();
		    		 return SUCCESS;	 
		    	}else{
		    	   this.addActionError("No hay conexion al servidor");	
		    	}
		    }else{
	    	    this.addActionError("La sesion del usuario ha caducado");	
	    	}
		    return ERROR;	 	   	  	
	 }	
	
	
	@SuppressWarnings("rawtypes")
	public String rechazar() throws Exception {
		  Map session = ActionContext.getContext().getSession();
		    Usuario USUARIO = (Usuario)session.get("ses_usuario");
		    String SQL="";
		    if (USUARIO!=null){	
		    	BASE= new Conectar();
		    	if(BASE.getMsg().equals("SI")){	
		    		Fecha F=new Fecha();
	    			String FECHA=F.getFecha();
	    			String HORA=F.getHoras();
	    			String cod_prospecto="";
			    		 SQL = " SELECT ec.site,u.email as vemail,p.codigo,p.identificacion +' - '+p.nombres as razon, p.telefono, p.telefono_oficina,p.celular,v.descripcion as vendedor"+
			    		 " FROM corp_economic ec, prospectos p, usuarios u, corp_asignaciones a, vendedores v WHERE ec.prospecto = p.codigo "+
			    		 " AND a.prospecto= ec.prospecto AND a.vendedor = v.cod AND v.usuario = u.usuario AND ec.codigo ='"+this.getCod_presupuesto()+"' ";
			    		 Resultado RCS = BASE.getBaseDatos().consultar(SQL);
			    		 if(RCS.RP){
			                	cod_prospecto=RCS.getCadena("codigo");
			                	
				                SQL="INSERT INTO corp_seguimiento_actividades " +
				    			"(prospecto,actividad,detalle,obs,usuario,fecha,hora) "+
				    			"VALUES('"+cod_prospecto+"','9','9996','INSERTAR','"+ USUARIO.getUsuario() +"','"+ FECHA +"','"+HORA+"' )";
				                BASE.getBaseDatos().ejecutar(SQL); 
					    		//SQL = "UPDATE corp_economic set status='RECHAZADO',fecha_status='" +FECHA+ "',hora_status='" +HORA+ "',usuario_status='" +USUARIO.getUsuario() + "' where site='" + this.getSite() +  "' ";
					    	    BASE.getBaseDatos().ejecutar(SQL);
					    	    /***************************************************************ENVIO DE EMAIL A VENDEDOR****************************************************************/
			    			    String MPARA =RCS.getCadena("vemail");
				            	String razon=RCS.getCadena("razon");
				            	String telfs=RCS.getCadena("telefono")+" / "+RCS.getCadena("telefono_oficina")+" / "+RCS.getCadena("celular");
				            	String MSG_EM="";
				    			MSG_EM = "Se ha rechazado presupuesto con el codigo: "+this.getCod_presupuesto()+" <br/>\n";
				    			MSG_EM = MSG_EM + "Razon social: " + razon + " <br/>\n";
				    			MSG_EM = MSG_EM + "Telefonos: " + telfs +" <br/>\n";
				    			MSG_EM = MSG_EM + "Usuario rechazo: " + USUARIO.getDescripcion() + " <br/>\n";
				    			MSG_EM = MSG_EM + "Fecha status:"+ FECHA+" "+HORA+ "<br/>\n";
				    			SQL="INSERT INTO apli_emails (para,cabecera,mensaje) VALUES('" + MPARA + "','PRESUPUESTO UPGRATE RECHAZADO CLIENTE="+razon+"','" + MSG_EM + "' ) ";
				    			BASE.getBaseDatos().ejecutar(SQL);		    	
			    		       /*******************************************************************************************************************************************************/
		                }
			    	     this.addActionMessage("Rechazado");
			    	     BASE.getBaseDatos().cerrarConexion();
			    		 return SUCCESS;
		    	}else{
		    	   this.addActionError("No hay conexion al servidor");	
		    	}
		    }else{
	    	    this.addActionError("La sesion del usuario ha caducado");	
	    	}
		    return ERROR;	 	   	  	
	 }	
//---------------------------------Nuevo registro de solicitud de upgrade-------------------------------------//
	
	
	
	public String guargarSolicitudUpgrade(){
		BASE= new Conectar();
		Resultado RCS= new Resultado();
		Fecha F = new Fecha();
		String FECHA= F.getFecha();
		String HORA= F.getHoras();
		String CODIGO="";
		Cadena C=new Cadena();
		Map<?, ?> session = ActionContext.getContext().getSession();
		Usuario USUARIO = (Usuario)session.get("ses_usuario");
		String SQL="", CABECERA="";
		if (USUARIO!=null){	
			LinkedList<?> lst_suc1=C.tokens(this.getCod_sucursal(), ",");
		    LinkedList<?> lst_serv=C.tokens(this.getServicioSol(), ",");
		    LinkedList<?> lst_prod=C.tokens(this.getVelocidadSol(), ",");
		    LinkedList<?> lst_mont=C.tokens(this.getMonto(), ",");
		    boolean actualizar=false;
		    String rp= buscarSolAnterior(this.getContrato());
		    
		    if(!rp.equals("NO")){
		    	/*
		    	 * actualizar solicitud anterior
		    	 */
		    	
		    	SQL="SELECT  U.[status],S.descripcion, U.procesado FROM corp_solicitud_upg U, corp_status_sol S WHERE "+ 
				"U.[status]=S.cod AND U.codigo='"+rp+"'";
		    	RCS=BASE.getBaseDatos().consultar(SQL);
		    	if(RCS.RP){
		    		if(Integer.parseInt(RCS.getCadena("status")) >= 10 )  {
		    			this.addActionError("Solicitud de Upgrade("+rp+") del Contrato:"+this.getContrato()+" No puede ser actulizada ya que fue Aprobada por el departamento Legal. ");
		    			return ERROR;
		    		}
		    	}
		    	actualizar=true;
		    	SQL="UPDATE corp_solicitud_upg set obs=' Actualizacion de Solicitud de Upgrade',status='2',usuario_act='"+ USUARIO.getUsuario() +"',fecha_act='"+FECHA+"',hora_act='"+HORA+"' where codigo='"+ rp + "' ";
		    	CABECERA="SOLICITUD DE ACTUALIZACION DE SERVICIO CON CODIGO="+rp+" ACTUALIZADA POR VENDEDOR";
		    	BASE.getBaseDatos().ejecutar(SQL);
		    	
		    	/*
		    	 * Registrar actividad de actualizacion de upgrade
		    	 */
		    	String codigo=BASE.getBaseDatos().generarCodigo("actividades", "codigo");
		    	SQL="INSERT INTO actividades " +
		    		" (codigo,contrato,tipo,tipo_det,obs_operador,obs_cliente,usuario,fecha,hora,nro_ticket,numero) "+
		    		" VALUES("+codigo+",'"+ contrato +"','101','123','"+ this.getObs() +"','"+ this.getObs() +"','"+ USUARIO.getUsuario() +"','"+ FECHA +"','"+HORA+"','-1','02120000000' )";
		    	BASE.getBaseDatos().ejecutar(SQL);
		    }else{
		    	/*
		    	 * registrar nueva solicitud de upgrade
		    	 */
		    	CODIGO=BASE.getBaseDatos().generarCodigo("corp_solicitud_upg", "codigo");
		    	SQL="INSERT INTO corp_solicitud_upg (codigo,contrato,obs,usuario,fecha,hora,status,fecha_act,hora_act,usuario_act,vendedor__) " +
					" VALUES('"+CODIGO +"','"+ this.getContrato() +"','"+obs+"','"+ USUARIO.getUsuario()+"','"+ FECHA +"','"+HORA+"','1','"+ FECHA +"','"+HORA+"','"+USUARIO.getUsuario()+"','"+ USUARIO.getCod_vendedor() +"' )";
		    	CABECERA="NUEVA SOLICITUD DE ACTUALIZACION DE SERVICIO GENERADA CON CODIGO="+CODIGO;
		    	BASE.getBaseDatos().ejecutar(SQL);
		    	
		    	/*
		    	 * registrar actividad solicitud de upgrade
		    	 */
		    	String codigo=BASE.getBaseDatos().generarCodigo("actividades", "codigo");
		    	SQL="INSERT INTO actividades " +
		    		" (codigo,contrato,tipo,tipo_det,obs_operador,obs_cliente,usuario,fecha,hora,nro_ticket,numero) "+
		    		" VALUES("+codigo+",'"+ contrato +"','101','122','"+ this.getObs() +"','"+ this.getObs() +"','"+ USUARIO.getUsuario() +"','"+ FECHA +"','"+HORA+"','-1','02120000000' )";
		    	BASE.getBaseDatos().ejecutar(SQL);
		    }
		    
		    try {
				for(int i=0; i<lst_suc1.size();i++){
					String suc=lst_suc1.get(i).toString().trim();
					String ser=lst_serv.get(i).toString().trim();
					String pro=lst_prod.get(i).toString().trim();
					String mon=lst_mont.get(i).toString().trim();
					
					//System.out.println("***************** sucursales: "+lst_suc1.size()  +" *********** servicios: "+lst_serv.size()   +" ************ velocidades: "+lst_prod.size()   +" ********montos: "+lst_mont.size());
					if (actualizar==true){
						/*
						 * actualizar detalle de solicitud de upgrade	
						 */
				    	if(!suc.equals("-1") && !ser.equals("-1") && !pro.equals("-1") && !mon.equals("") && !mon.equals("0") ){
				    		SQL="UPDATE corp_solicitud_upg_detalle SET " +
					    	" servicio='"+ser+"',producto='"+pro+"',monto='"+mon+"' Where solicitud='"+rp+"' AND sucursal='"+suc+"' ";
				    		//System.out.println("*******   "+SQL);
				    		BASE.getBaseDatos().ejecutar(SQL);
				    	}
					}else{
				    	/*
				    	 * registrar detalle de solicitud de upgrade
				    	 */
						if(!suc.equals("-1") && !ser.equals("-1") && !pro.equals("-1") && !mon.equals("") && !mon.equals("0") ){
						//System.out.println("*******   SUCURSAL: "+suc+"  SERVICIO: "+ser+"  VELOCIDAD:"+pro+ "MONTO: "+mon);
			    	   	SQL="INSERT INTO corp_solicitud_upg_detalle " +
			  		   			"(solicitud,sucursal,servicio,producto,monto) "+
			  		   			"VALUES('"+CODIGO+"','"+suc+"','"+ser+"','"+pro+"','"+mon+"' ) ";
			    	   	BASE.getBaseDatos().ejecutar(SQL);
					   }   
					}
				}
				
				    String DESTINO=USUARIO.getEmail()+","+USUARIO.getEmail_sup()+",planeamiento@movilmax.com"; 
  		    	    SQL="INSERT INTO corp_seguimiento_actividades_cli (contrato,proceso,obs,usuario,fecha,hora) "+
  		    			"VALUES('"+this.getContrato() +"','1','"+ this.getObs() +"','"+ USUARIO.getUsuario() +"','"+ FECHA +"','"+HORA+"' )";
  		    	    //System.out.println("-----------------"+SQL);
  		    	    BASE.getBaseDatos().ejecutar(SQL); 
  		    	    String MSG_EM="";
  		    	    MSG_EM =MSG_EM+ "<br/>\n";
  		    	    SQL="SELECT C.nombres +' '+C.apellidos as descripcion FROM clientes C, contratos CN WHERE CN.cliente = C.codigo AND CN.contrato='"+this.getContrato()+"'";
  		    	    RCS=BASE.getBaseDatos().consultar(SQL);
  		    	    if(RCS.RP){
  		    	    	MSG_EM = MSG_EM + "Cliente: " + this.getContrato() +" - "+RCS.getCadena("descripcion") + " <br/>\n";
  		    	    }
	  				MSG_EM = MSG_EM + "Fecha status: "+new Fecha().getFecha()+" "+ new Fecha().getHoras() +" <br/>\n";
	  				MSG_EM = MSG_EM + "Usuario status: " + USUARIO.getDescripcion() + " <br/>\n";
	  				MSG_EM = MSG_EM + "Observaciones: " + this.getObs() + " <br/>\n";
					SQL="INSERT INTO apli_emails (para,cabecera,mensaje) VALUES('" + DESTINO + "','"+CABECERA+"','" + MSG_EM + "' ) ";
					BASE.getBaseDatos().ejecutar(SQL);
  		    	    this.addActionMessage("Solicitud enviada correctamente");
  		    	    this.addActionMessage("Copia enviada a :"+DESTINO+" ");
  		    	    this.addActionMessage("Actividad registrada con fecha : ("+ new Fecha().getFecha() +" "+ new Fecha().getHoras()  +" )");
  		    	    BASE.getBaseDatos().cerrarConexion();
  		    	    return SUCCESS; 	
  		    	    
			}catch (Exception err) {
				this.addActionError(""+err);
				return ERROR;
			}
		}else
		
			this.addActionError("La sesion del usuario ha caducado");
			return ERROR;
	}
	
	
	@SuppressWarnings("unused")
	public String buscarSolAnterior(String contrato){
		Conectar BASE = new Conectar();
		Map<?, ?> session = ActionContext.getContext().getSession();
		Usuario USUARIO = (Usuario)session.get("ses_usuario");
		String SQL="";
		Resultado RCS= new Resultado();
			SQL="SELECT  U.codigo,U.contrato,U.[status],S.descripcion, U.procesado FROM corp_solicitud_upg U, corp_status_sol S WHERE "+ 
				"U.[status]=S.cod AND U.contrato='"+contrato+"'";
			RCS= BASE.getBaseDatos().consultar(SQL);
			if(RCS.RP){   
				if(RCS.getCadena("procesado") == "0"){
					return RCS.getCadena("codigo");
				}
			}
			return "NO";
	}
	
	
	
	public String getJSON(){
		@SuppressWarnings("rawtypes")
		Map session = ActionContext.getContext().getSession();
		  Usuario USUARIO = (Usuario)session.get("ses_usuario");
		  if (USUARIO==null){
			  this.addActionError("La sesion del usuario ha caducado");
			  return ERROR;
		  }
		  BASE= new Conectar();
		  if(BASE.getMsg().equals("SI")){
			  listar_sucursales();
			  listar_servicios();
			 // cargarVelocidadProd();
			  if(solicitud.getServicio()!=null){
			     listar_productos();  
			  }
			 
			  BASE.getBaseDatos().cerrarConexion();
			 return SUCCESS;
		  }else{
			  this.addActionError("No hay conexion al servidor");
		      return ERROR;
		  }
      }
	
	public List<Listax> getLst_servicios() {
		return lst_servicios;
	}
	public void setLst_servicios(List<Listax> lst_servicios) {
		this.lst_servicios = lst_servicios;
	}
	public List<Listax> getLst_productos() {
		return lst_productos;
	}
	public void setLst_productos(List<Listax> lst_productos) {
		this.lst_productos = lst_productos;
	}
	public SolicitudUpg getSolicitud() {
		return solicitud;
	}
	public void setSolicitud(SolicitudUpg solicitud) {
		this.solicitud = solicitud;
	}
	public List<Listax> getLst_sucursales() {
		return lst_sucursales;
	}
	public void setLst_sucursales(List<Listax> lst_sucursales) {
		this.lst_sucursales = lst_sucursales;
	}
	public String getId_obj() {
		return id_obj;
	}
	public void setId_obj(String id_obj) {
		this.id_obj = id_obj;
	}
	public List<ListaSs> getTabla_det() {
		return tabla_det;
	}
	public void setTabla_det(List<ListaSs> tabla_det) {
		this.tabla_det = tabla_det;
	}
	public File getArchivo() {
		return archivo;
	}
	public void setArchivo(File archivo) {
		this.archivo = archivo;
	}
	public String getArchivoContentType() {
		return archivoContentType;
	}
	public void setArchivoContentType(String archivoContentType) {
		this.archivoContentType = archivoContentType;
	}
	public String getArchivoFileName() {
		return archivoFileName;
	}
	public void setArchivoFileName(String archivoFileName) {
		this.archivoFileName = archivoFileName;
	}
	public String getBloquear() {
		return bloquear;
	}
	public void setBloquear(String bloquear) {
		this.bloquear = bloquear;
	}
	public String getCod_adendun() {
		return cod_adendun;
	}
	public void setCod_adendun(String cod_adendun) {
		this.cod_adendun = cod_adendun;
	}
	public LinkedList<Presupuesto> getLst_presupuestos() {
		return lst_presupuestos;
	}
	public void setLst_presupuestos(LinkedList<Presupuesto> lst_presupuestos) {
		this.lst_presupuestos = lst_presupuestos;
	}
	public String getCod_presupuesto() {
		return cod_presupuesto;
	}
	public void setCod_presupuesto(String cod_presupuesto) {
		this.cod_presupuesto = cod_presupuesto;
	}
	public List<ListaSs> getTabla_sa() {
		return tabla_sa;
	}
	public void setTabla_sa(List<ListaSs> tabla_sa) {
		this.tabla_sa = tabla_sa;
	}
	//------------------------------------------------------------------------------------------------------------------------------------------
	public String getContrato() {
		return contrato;
	}
	public void setContrato(String contrato) {
		this.contrato = contrato;
	}
	public String getCod_sucursal() {
		return cod_sucursal;
	}
	public void setCod_sucursal(String cod_sucursal) {
		this.cod_sucursal = cod_sucursal;
	}
	public String getServicioSol() {
		return servicioSol;
	}
	public void setServicioSol(String servicioSol) {
		this.servicioSol = servicioSol;
	}
	public String getVelocidadSol() {
		return velocidadSol;
	}
	public void setVelocidadSol(String velocidadSol) {
		this.velocidadSol = velocidadSol;
	}
	public String getMonto() {
		return monto;
	}
	public void setMonto(String monto) {
		this.monto = monto;
	}
	public String getObs() {
		return obs;
	}
	public void setObs(String obs) {
		this.obs = obs;
	}
}
